﻿using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Xml.Linq;
using Hizy.Resources;

namespace Hizy.ViewModels
{
    public class AllDataModel : INotifyPropertyChanged
    {
        public AllDataModel()
        {
            this.Items = new ObservableCollection<ItemViewModel>();
            this.Home = new ObservableCollection<ItemViewModel>();
            this.Tidur = new ObservableCollection<ItemViewModel>();
            this.Taman = new ObservableCollection<ItemViewModel>();
            this.Furniture = new ObservableCollection<ItemViewModel>();
            this.Dapur = new ObservableCollection<ItemViewModel>();
            this.Bookmarks= new ObservableCollection<ItemViewModel>();
            this.RecentItems = new ObservableCollection<ItemViewModel>();
            this.InfoItems = new ObservableCollection<ItemViewModel>();
        }

        /// <summary>
        /// A collection for ItemViewModel objects.
        /// </summary>
        public ObservableCollection<ItemViewModel> Items { get; private set; }
        public ObservableCollection<ItemViewModel> Home { get; private set; }
        public ObservableCollection<ItemViewModel> Dapur { get; private set; }
        public ObservableCollection<ItemViewModel> Furniture { get; private set; }
        public ObservableCollection<ItemViewModel> Taman { get; private set; }
        public ObservableCollection<ItemViewModel> Tidur { get; private set; }
        public ObservableCollection<ItemViewModel> AllItems { get; private set; }
        public ObservableCollection<ItemViewModel> Bookmarks { get; private set; }
        public ObservableCollection<ItemViewModel> RecentItems { get; private set; }
        public ObservableCollection<ItemViewModel> InfoItems { get; private set; }

        private string _sampleProperty = "Sample Runtime Property Value";
        /// <summary>
        /// Sample ViewModel property; this property is used in the view to display its value using a Binding
        /// </summary>
        /// <returns></returns>
        public string SampleProperty
        {
            get
            {
                return _sampleProperty;
            }
            set
            {
                if (value != _sampleProperty)
                {
                    _sampleProperty = value;
                    NotifyPropertyChanged("SampleProperty");
                }
            }
        }

        public void insertBookmarks(ItemViewModel items)
        {
            Bookmarks.Insert(0,items);
            if (Bookmarks.Count > 6)
                Bookmarks.RemoveAt(6);
        }
        public void insertRecent(ItemViewModel items)
        {
            foreach (var item in RecentItems)
            {
                if (item.Id == items.Id)
                    return;
            }
            RecentItems.Insert(0, items);
            if (RecentItems.Count > 6)
                RecentItems.RemoveAt(6);
        }
        /// <summary>
        /// Sample property that returns a localized string
        /// </summary>
        public string LocalizedSampleProperty
        {
            get
            {
                return AppResources.SampleProperty;
            }
        }

        public ObservableCollection<ItemViewModel> getSearch(string text)
        {
            ObservableCollection<ItemViewModel> retVal = new ObservableCollection<ItemViewModel> ();
            foreach (var item in AllItems)
            {
                if (item.Title.ToLower().Contains(text.ToLower()))
                    retVal.Add(item);
                else if(item.Content.ToLower().Contains(text.ToLower()))
                    retVal.Add(item);
            }
            return retVal;
        }

        public bool IsDataLoaded
        {
            get;
            private set;
        }

        private string cutUselessChar(string text)
        {
            string retVal = text;
            retVal = retVal.Replace("<p>", "");
            retVal = retVal.Replace("</p>", "");
            return retVal;
        }
        public ObservableCollection<ItemViewModel> getRandomInfo()
        {
            ObservableCollection<ItemViewModel> retVal = new ObservableCollection<ItemViewModel>();
            ObservableCollection<ItemViewModel> temp = new ObservableCollection<ItemViewModel>();
            foreach (var item in InfoItems)
            {
                temp.Add(item);
            }
            Random rand = new Random();
            int randomVal= 0;
            while (retVal.Count < 6)
            {
                randomVal = rand.Next(temp.Count);
                retVal.Add(temp[randomVal]);
                temp.RemoveAt(randomVal);
            }
            return retVal;
        }
        public ObservableCollection<ItemViewModel> getRelated(string id)
        {
            ObservableCollection<ItemViewModel> retVal = new ObservableCollection<ItemViewModel>();
            ObservableCollection<ItemViewModel> temp = new ObservableCollection<ItemViewModel>();
            foreach (var item in AllItems)
            {
                temp.Add(item);
            }
            Random rand = new Random();
            int randomVal = 0;
            while (retVal.Count < 6)
            {
                randomVal = rand.Next(temp.Count);
                if ( temp[randomVal].Id != id)
                {
                    retVal.Add(temp[randomVal]);
                    temp.RemoveAt(randomVal);
                }
            }
            return retVal;
        }
        /// <summary>
        /// Creates and adds a few ItemViewModel objects into the Items collection.
        /// </summary>
        public void LoadData()
        {
            // Sample data; replace with real data
            Home = new ObservableCollection<ItemViewModel>();
            AllItems = new ObservableCollection<ItemViewModel>();
            XDocument XDoc = XDocument.Load("data.xml");
            foreach (var member in XDoc.Descendants("item"))
            {
                ItemViewModel item = new ItemViewModel();
                item.Url = member.Element("url_alias").Value;
                item.Id = member.Element("node_id").Value;
                item.Content = member.Element("body").Value;
                item.Content = cutUselessChar(item.Content);
                item.Title = member.Element("title").Value;
                item.View = Convert.ToInt32(member.Element("view_count").Value);
                item.Description = member.Element("description").Value;
                foreach (var members in member.Descendants("image"))
                {
                    item.Image = members.Element("medium").Value;
                }
                Home.Add(item);
                AllItems.Add(item);
            }

            Furniture = new ObservableCollection<ItemViewModel>();
            XDoc = XDocument.Load("furniture.xml");
            foreach (var member in XDoc.Descendants("item"))
            {
                ItemViewModel item = new ItemViewModel();
                item.Url = member.Element("url_alias").Value;
                item.Id = member.Element("node_id").Value;
                item.Content = member.Element("body").Value;
                item.Content = cutUselessChar(item.Content);
                item.Title = member.Element("title").Value;
                item.View = Convert.ToInt32(member.Element("view_count").Value);
                item.Description = member.Element("description").Value;
                foreach (var members in member.Descendants("image"))
                {
                    item.Image = (members.Element("medium") != null) ? members.Element("medium").Value : members.Element("large") != null ? members.Element("large").Value : members.Element("small").Value;
                }
                Furniture.Add(item);
                AllItems.Add(item);
            }

            Tidur = new ObservableCollection<ItemViewModel>();
            XDoc = XDocument.Load("tidur.xml");
            foreach (var member in XDoc.Descendants("item"))
            {
                ItemViewModel item = new ItemViewModel();
                item.Url = member.Element("url_alias").Value;
                item.Id = member.Element("node_id").Value;
                item.Content = member.Element("body").Value;
                item.Content = cutUselessChar(item.Content);
                item.View = Convert.ToInt32(member.Element("view_count").Value);
                item.Title = member.Element("title").Value;
                item.Description = member.Element("description").Value;
                foreach (var members in member.Descendants("image"))
                {
                    item.Image = members.Element("medium").Value;
                }
                Tidur.Add(item);
                AllItems.Add(item);
            }

            Dapur = new ObservableCollection<ItemViewModel>();
            XDoc = XDocument.Load("dapur.xml");
            foreach (var member in XDoc.Descendants("item"))
            {
                ItemViewModel item = new ItemViewModel();
                item.Url = member.Element("url_alias").Value;
                item.Id = member.Element("node_id").Value;
                item.Content = member.Element("body").Value;
                item.Content = cutUselessChar(item.Content);
                item.Title = member.Element("title").Value;
                item.Description = member.Element("description").Value;
                item.View = Convert.ToInt32(member.Element("view_count").Value);
                foreach (var members in member.Descendants("image"))
                {
                    item.Image = members.Element("medium").Value;
                }
                Dapur.Add(item);
                AllItems.Add(item);
            }

            Taman = new ObservableCollection<ItemViewModel>();
            XDoc = XDocument.Load("taman.xml");
            foreach (var member in XDoc.Descendants("item"))
            {
                ItemViewModel item = new ItemViewModel();
                item.Url = member.Element("url_alias").Value;
                item.Id = member.Element("node_id").Value;
                item.Content = member.Element("body").Value;
                item.Content = cutUselessChar(item.Content);
                item.View = Convert.ToInt32(member.Element("view_count").Value);
                item.Title = member.Element("title").Value;
                item.Description = member.Element("description").Value;
                foreach (var members in member.Descendants("image"))
                {
                    item.Image = members.Element("medium").Value;
                }
                Taman.Add(item);
                AllItems.Add(item);
            }
            //this.Items.Add(new ItemViewModel() { Title = "runtime one", Description = "Maecenas praesent accumsan bibendum", Content = "Facilisi faucibus habitant inceptos interdum lobortis nascetur pharetra placerat pulvinar sagittis senectus sociosqu" });

            InfoItems = new ObservableCollection<ItemViewModel>();
            this.InfoItems.Add(new ItemViewModel() { Id = "1", Title = "4 Langkah Merawat Tanaman Anggrek", Image = "http://www.ideaonline.co.id/var/gramedia/storage/images/idea/tips/berkebun/merawat-tanaman/4-langkah-merawat-tanaman-anggrek/6704304-1-ind-ID/4-Langkah-Merawat-Tanaman-Anggrek_thumbnaildetail.jpg", Description = "Tanaman anggrek memang mempunyai sejuta pesona , tidak susah merawat tanaman ini, hanya dibutuhkan pengertian dari sang majikan.", Content = " Tanaman anggrek memang mempunyai sejuta pesona , tidak susah merawat tanaman ini, hanya dibutuhkan pengertian dari sang majikan. Anggrek memang mempunyai daya tarik yang luar biasa , mungkin karena tanaman anggrek mempunyai sejuta pesona keindahan. Bayaknya penyilangan anggrek mengakibatkan banyaknya ragam dan warna yang baru sehingga tanaman anggrek semakin banyak diminati. Tidak sulit untuk merawat tanaman ini , yang penting kita harus tahu bagaimana tanaman anggrek ini bisa hidup. Berikut adalah 4 Tips merawat tanaman anggrek : Tempatkan tanaman anggrek di area yang terkena sinar matahari alami, namun area tersebut tidak boleh terlalu panas. Hindari masuknya sinar matahari secara berlebihan, Kelebihan intensitas matahari akan menyebabkan daun-daun menguning seperti terbakar. Jagalah tanaman anggrek agar tetap lembab, Tanaman anggrek merupakan tanaman tropis dan lingkungan alaminya adalah daerah yang lembab. Terlalu banyak memberikan air pada tanaman  justru akan merusak anggrek. Penyiraman baimk dilakukan pada pagi hari jam 07.00-09.00 dan sore hari jam 15.00-17.00. Tanam anggrek dalam pot kecil. Akar-akarnya yang halus membutuhkan pot yang lebih kecil untuk tumbuh dan berkembang. Penggantian pot  sangatlah penting, penggantian pot adalah proses dimana tanaman anggrek ditanam ulang dengan pot yang lebih besar dengan media tanaman baru. Tanda pot anggrek sudah harus diganti adalah : pot sudah padat oleh tunas baru, pot sudah tidak cukup menampung perakarannya, media tanam  banyak ditumbuhi lumut, media tanam sudah hancur dan lapuk. Anggrek akan tumbuh baik di dataran tinggi, tetapi tidak menutup kemungkinan untuk hidup di dataran rendah. Suhu  yang baik untuk anggrek adalah  15⁰C-35⁰C (Suhu maximal 20⁰C) dengan sirkulasi udara yang baik. Kelembaban udara berkisar 65⁰C-70⁰C. " });
            this.InfoItems.Add(new ItemViewModel() { Id = "2", Title = "Tips Cegah Rembesan Pada Air Sink ", Description = "Inilah tips simpel mencegah kebocoran air pada sink . Pastikan tips dilakukan sebelum pemasangan sink .", Image = "http://www.ideaonline.co.id/var/gramedia/storage/images/idea/tips/dekorasi-ruang/dapur/tips-cegah-rembesan-pada-air-sink/9402643-1-ind-ID/Tips-Cegah-Rembesan-Pada-Air-Sink_thumbnaildetail.jpg", Content = "Inilah tips simpel mencegah kebocoran air pada sink . Pastikan tips dilakukan sebelum pemasangan sink . Permasalahan yang kerap terjadi pada sink adalah air yang merembes atau bocoran. Karenanya Anda perlu memperhatikan kiat jitu untuk cegah rembesan air dari sink. Sewaktu akan memasang sink, pastikan ukuran lubang meja dapur pas dengan ukuran sink. Beri semen di sekeliling sambungan sink  dan meja. Periksa sekali lagi. Apakah pinggiran sink bercelah? Celah-celah yang tidak terdeteksi berpotensi membuat air merembes. Jika masih ada celah, tambal lagi dengan semen secukupnya. Setelah cukup kering, lapisi dengan sealant untuk pencegahan terakhir. Beri sealant  agak banyak dan ratakan. Pemasangan sink  asal-asalan akan berimbas kepada fungsinya yang kurang optimal. Awalnya mungkin Anda tidak merasakan dampaknya, namun untuk jangka panjang akan berakibat pada kebocoran, karat dan sebagainya. Karenanya, cermatlah dalam menata ruangan Anda, termasuk pemasangan alat keperluan dapur." });
            this.InfoItems.Add(new ItemViewModel() { Id = "3", Title = "Cara Cepat Hindari Serbuan Semut", Image = "http://www.ideaonline.co.id/var/gramedia/storage/images/idea/tips/aplikasi/cara-cepat-hindari-serbuan-semut/7246238-1-ind-ID/Cara-Cepat-Hindari-Serbuan-Semut_thumbnaildetail.jpg", Description = "Tak perlu panik saat semut mulai bertamu ke wadah penyimpanan. Ikuti saja petunjuk simpel berikut ini! Semut yang masuk ke makanan seringkali membuat jengkel. Semakin susah jika semut berhasil mengerumuni kotak bahan makanan yang sehari-hari kita gunakan untuk memasak.  Semut merupakan binatang yang memiliki sifat eusosial yang berasal dari keluarga Formisidae. Semut termasuk dalam ordo Himenoptera bersama dengan lebah dan tawon. Semut memiliki sarang yang teratur dan hidup dalam koloni-koloni. Tak heran jika satu semut berhasil masuk ke area penyimpanan, tak lama disusul oleh semut-semut lain. Untuk mencegah semut mengerubuti makanan, bahkan bahan masakan dan makanan Anda, ikuti tips berikut. 1. Semprotkan cairan jeruk nipis di area yang terkena semut. Jeruk nipis mengandung asam yang menghalangi gerak semut. 2. Tanam beberapa jenis pohon seperti pohon Lavender, Zodia, atau pohon Mint yang memiliki aroma yang tidak digemari serangga. Tanam di halaman yang kira-kira sering menjadi tempat berkumpulnya semut. 3. Beberapa bahan berikut bisa ditaburkan di area sirkulasi semut. Bahan-bahan tersebut diantaranya adalah: bubuk kayu manis, soda kue, bubuk cengkeh, parutan kulit jeruk, dan kapur. 4. Gunakan silika gel di ruangan penyimpan yang lembap. Kelembapan biasanya memancing bau yang mengundang semut. 5. Bersihkan ruangan penyimpan, dan ruangan lain secara rutin dari remah makanan. Kebersihan adalah kunci penting menghindari serbuan semut di ruangan. "});
            this.InfoItems.Add(new ItemViewModel() { Id = "4", Title = "Cara Aman Menyambung Kabel", Description = "Menyambung kabel harus dilakukan dengan benar. Inilah 4 langkah aman untuk mengerjakannya.", Image = "http://www.ideaonline.co.id/var/gramedia/storage/images/idea/tips/aplikasi/bahan-bangunan/cara-aman-menyambung-kabel/7783491-1-ind-ID/Cara-Aman-Menyambung-Kabel_thumbnaildetail.jpg", Content = "Hati-hati “bermain” dengan listrik. Salah sedikit, nyawa dan harta jadi taruhannya. Bukan bermaksud menakut-nakuti, tapi memang begitulah seharusnya jika berurusan dengan listrik. Untuk mencegah hal-hal yang tak diinginkan, seyogianya Anda melakukan pemeriksaan berkala terhadap instalasi listrik di rumah. Terutama jika instalasi itu sudah berusia lebih dari 5 tahun. Lakukanlah rehabilitasi untuk mengganti instalasi yang sudah tak layak digunakan. Selain itu, hindari menumpuk stop kontak pada satu sumber listrik dan jauhkan sumber listrik dari jangkauan anak-anak. Gunakanlah alat dan material listrik berkualitas dan telah memiliki label SNI (Standar Nasional Indonesia). Perhatikan pula pohon-pohon di sekitar rumah. Pangkas ranting yang mendekati atau menyentuh jaringan listrik. Kadang-kadang ada peralatan elektronik yang lepas atau harus diperbaiki sambungan kabelnya, misalnya kabel pada lampu baca atau saklar. Proses kerja penyambungan kabel menuntut kehati-hatian. Jika Anda bermaksud memperbaikinya sendiri, ketahui dulu cara aman dan benar dalam mengerjakannya. Seperti inilah prosesnya." });
            this.InfoItems.Add(new ItemViewModel() { Id = "5", Title = "Mengatasi Wastafel Pampat", Description = "Wastafel merupakan salah satu peralatan yang sering digunakan di rumah. Karenanya, jangan sampai pampat!", Content = "Mencuci tangan, membasuh wajah maupun menggosok gigi adalah beberapa kegiatan yang sering kita lakukan menggunakan wastafel. Tingginya frekuensi pemakaian dapat menimbulkan beberapa masalah pada wastafel, salah satunya adalah kemampatan. Wastafel pampat seringkali terjadi ketika ada lapisan lemak atau kotoran yang menumpuk pada pipa pembuangan air wastafel. Akibatnya, air kotor tidak dapat mengalir dan seringkali menimbulkan bau tidak sedap. Cara membersihkannya tergantung pada penyebab pampatnya wastafel. Membersihkan lapisan lemak tentu berbeda dengan membersihkan plastik yang menyumbat pipa pembuangan di wastafel. Berikut ini beberapa caranya.  1. Cairan pembersih Cairan pembersih ampuh untuk membersihkan kotoran sisa makanan, lapisan lemak, bahan plastik yang tipis (semacam plastik gula). Cara penggunaannya pun terbilang mudah. Kuras air yang menggenang di wastafel hingga kering, kemudian tuangkan cairan pembersih secukupnya ke lubang wastafel. Berhati-hatilah ketika menuangkan cairan pembersih, gunakan sarung tangan, dan segera tutup lubang wastafel dengan wadah plastik yang diposisikan terbalik untuk menghindari luapan kotoran dan zat asam dari cairan pembersih. Tunggu kira-kira 15 menit, lalu siram lubang wastafel dengan air dingin. Bahan cairan pembersih ini aman bagi pipa air. 2. Menggunakan kawat spiral Kawat spiral tidak dapat digunakan untuk membersihkan wastafel pampat karena sumbatan bahan semacam plastik.  Terdapat 2 jenis kawat spiral, yang satu berbentuk seperti selang dengan tangkai besi untuk pemutar, tipe lain memiliki pemutar seperti alat pancing. Pertama-tama masukkan ujung kawat spiral ke lubang wastafel, longgarkan hingga mencapai titik buntu, kemudian eratkan pengunci kawat. Untuk tipe kawat spiral yang pertama, tekan kawat berulang kali sedangkan untuk tipe kawat kedua, putar tuas yang tersedia searah jarum jam sambil tekan ke arah titik yang buntu hingga bersih. Longgarkan dan angkat kembali kawat spiral, siram lubang dengan air. Ulangi proses ini hingga lubang wastafel tidak pampat.", Image = "http://www.ideaonline.co.id/var/gramedia/storage/images/idea/tips/aplikasi/saniter/mengatasi-wastafel-pampat/7791014-1-ind-ID/Mengatasi-Wastafel-Pampat_thumbnaildetail.jpg" });
            this.InfoItems.Add(new ItemViewModel() { Id = "6", Title = "Kaus Usang Disulap jadi Sarung Bantal Penghias Ruang", Image = "http://www.ideaonline.co.id/var/gramedia/storage/images/idea/tips/dekorasi-ruang/ruang-keluarga/kaus-usang-disulap-jadi-sarung-bantal-penghias-ruang/9402433-1-ind-ID/Kaus-Usang-Disulap-jadi-Sarung-Bantal-Penghias-Ruang_thumbnaildetail.jpg", Description = "Ternyata kaus usang dapat dimanfaatkan menjadi barang baru: sarung bantal untuk kursi atau sofa.", Content = "Kadang kita merasa sayang membuang kaus yang sudah tidak terpakai lagi. Alasannya karena lumayan masih bagus. Kenyataannya sering dibiarkan menumpuk. Lemari menjadi penuh. Saatnya Anda mendaur ulang. Anda hanya memerlukan empat sentuhan singkat. Setelah jadi pun, bila kotor, dapat langsung dicuci layaknya mencuci baju. Yuk mari kita buat! Alat dan bahan: 1.    Kaus, dengan hiasan gambar atau tulisan yang menarik 2.    Alat jahit 3.    Dakron, retsleting " });
            this.InfoItems.Add(new ItemViewModel() { Id = "7", Title = "Merawat Furnitur Knock Down ", Image = "http://www.ideaonline.co.id/var/gramedia/storage/images/idea/tips/dekorasi-ruang/ruang-kerja/merawat-furnitur-knock-down/9447397-1-ind-ID/Merawat-Furnitur-Knock-Down_thumbnaildetail.jpg", Description = "Keindahan merupakan sesuatu yang sangat individual sehingga terdapat kenyamanan di dalamnya.", Content = "Keindahan atau estetika merupakan faktor yang sangat penting dalam sebuah rumah. Tanpa adanya keindahan yang diciptakan melalui furnitur, elemen dekoratif hingga warna cat dinding, rumah akan terlihat monoton. Menciptakan keindahan dalam sebuah rumah memang membutuhkan kreativitas. Untuk furnitur knock down  biasanya batas keawetannya sekitar 6 hingga 7 tahun. Khusus untuk sofa biasanya hanya 5 tahun. Furnitur yang Anda miliki akan awet ketahanannya tergantung dari bagaimana mempergunakan furnitur tersebut sebagaimana mestinya. Agar furnitur yang dimiliki awet dan tahan lama, sebaiknya perhatikan hal-hal berikut ini! Ketika menata ulang barang-barang yang Anda miliki, harus berhati-hati sebaik mungkin. Anda wajib berhati-hati ketika memindahkan furnitur agar tidak merusak lantai atau furnitur itu sendiri. Dalam memindahkan furnitur, ada baiknya menggunakan alas seperti kardus pada bagian bawahnya. Merawat furnitur knock down faktanya tidak terlalu sulit jika dibanding merawat furnitur yang berasal dari kayu solid. Cukup dengan menggunakan lap agak basah ketika membersihkannya. Hindari peletakan furnitur knock down  pada tembok, karena dapat menyebabkan furnitur lembap dan berjamur. Pada umumnya furnitur knock down  berasal dari material particle board . Karena bahan tersebut dapat mengembang setelah terendam air. Jika Anda ingin furnitur awet dan tahan lama, rawatlah sebaik mungkin. Hindari hal-hal yang dapat merusak furnitur ataupun elemen lain di dalam rumah. Selamat mencoba!" });
            this.InfoItems.Add(new ItemViewModel() { Id = "8", Title = "Membuat Ruang Mungil jadi Area Hijau", Image = "http://www.ideaonline.co.id/var/gramedia/storage/images/idea/tips/berkebun/merancang-taman/membuat-ruang-mungil-jadi-area-hijau/6703915-1-ind-ID/Membuat-Ruang-Mungil-jadi-Area-Hijau_thumbnaildetail.jpg", Description = "Membuat area taman mungil menjadi hijau butuh trik khusus. Ingin tahu, lihat yuk langkah-langkah menghijaukan lahan mungil berikut.", Content = " Jengah rasanya melihat rumah mungil di kota yang minim tanaman hijau. Selain menyilaukan, panas, dan udara berdebu, secara visual rumah tanpa tanaman hijau tampak sepi dan kaku. Apalagi jika eksterior rumah berona minimalis. Sebenarnya, lahan terbatas tidak harus menjadi halangan untuk membuat ruang hijau di halaman rumah. Banyak ide-ide menarik yang bisa Anda aplkasikan. Berikut akan dibahas dua ide yang dapat dipraktekkan di rumah bermodel apapun. Menanam Rumput Pada Batu Grassblock. Menanam rumput di dalam grassblock adalah solusi tepat jika Anda membutuhkan penghijauan tetapi tidak memiliki ruang. Grassblock dapat menjadi lantai garasi mobil atau selasar Anda, sekaligus menjadi media tanam rumput hijau.    Isi lubang di tengah batu grassblock atau di antara batu dengan tanah yang dicampur kompos atau pupuk kandang. Pastikan terdapat sisa 2cm dari permukaan atas batu dan tanah.    Tanam bibit rumput di lubang grassblock . Tekan tanah setelah Anda menanam bibit agar akar-akar rumput baru menyatu dengan media tanah. Gunakan rumput yang kecepatan pertumbuhannya relatif lambat dan tidak tumbuh menjalar. Yang ideal adalah rumput yang bertekstur halus dan tumbuh tegak ke atas.    Siram secara rutin setiap pagi dan sore. Sebaiknya penyiraman dilakukan secukupnya jangan sampai banjir dan juga tidak terlalu kering. Jika rumput belum menunjukkan tanda-tanda pertumbuhan setelah satu minggu, cobalah untuk memberi tekanan lebih pada area yang ditanami rumput. Misalnya dengan memberi injakan atau menggunakannya sebagai tempat parkir mobil. " });
            this.InfoItems.Add(new ItemViewModel() { Id = "9", Title = "Melindungi Rumput dengan Menanam Pijakan", Image = "http://www.ideaonline.co.id/var/gramedia/storage/images/idea/tips/berkebun/melindungi-rumput-dengan-menanam-pijakan/4416255-1-ind-ID/Melindungi-Rumput-dengan-Menanam-Pijakan_thumbnaildetail.jpg", Description = "Taman berumput memang indah dipandang. Sayang, merawat rumput tumbuh hijau dan subur bukan perkara gampang. ", Content = "Supaya rumput aman, buat alur jalan setapak pada area perlintasan yang sering dilewati. Anda bisa menggunakan pijakan (stepping ) sebagai sarananya. Stepping  banyak tersedia di toko-toko perlengkapan taman dan batu. Ada yang terbuat dari adukan semen dan pasir yang dicetak aneka bentuk dan ukuran. Permukaannya ada yang tampil polos, pun ada yang ditaburi kerikil atau koral sikat. Anda juga bisa memanfaatkan batu alam, seperti andesit bakar atau batu candi sebagai pijakan. Soal pilihan jenis batu, hindari batu palimanan yang mudah berlumut. Jikalau memakai batu alam, jangan lupa pula memberikan coating  agar tak mudah ditumbuhi lumut dan tampilan batunya tetap cantik, serta tahan cuaca. " });
            this.InfoItems.Add(new ItemViewModel() { Id = "10", Title = "Merawat Kuningan Makin Kinclong! ", Image = "http://www.ideaonline.co.id/var/gramedia/storage/images/idea/tips/dekorasi-ruang/ruang-keluarga/merawat-kuningan-makin-kinclong!/9523859-1-ind-ID/Merawat-Kuningan-Makin-Kinclong!_thumbnaildetail.jpg", Description = "Aksesoris kuningan tampak cantik dipajang di rumah. Biasanya pernak-pernik dari kuningan ini unik dan warnanya terlihat antik.", Content = "Kuningan merupakan warisan leluhur, jadi sudah semestinyalah kita menggunakan teknik perawatan ala leluhur pula. Memakai asam jawa atau buah belimbing wuluh masih tetap jadi cara ampuh merawat kuningan. Alatnya cukup menggunakan lap, kuas, dan cutton bud, berikut caranya : Campurkan asam jawa dengan air hingga larut,  Oleskan cairan asam pada pernik atau perabot kuningan. Anda dapat menggunakan lap jika permukaan rata. Jika ada detail ukiran, gunakan kuas untuk menyapukan cairan asam pada perabot. Biarkan hingga kering.    Gosok dengan kain hingga bersih. Gunakan cutton bud untuk membersihkan sudut-sudutnya Selamat mencoba!" });            

            this.IsDataLoaded = true;
        }

        public event PropertyChangedEventHandler PropertyChanged;
        private void NotifyPropertyChanged(String propertyName)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (null != handler)
            {
                handler(this, new PropertyChangedEventArgs(propertyName));
            }
        }
    }
}